﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestWork_2_25Jan2017
{
    class Program
    {


        static void Main(string[] args)
        {
            //HumanTask();
            //TextAndFile();
            ArraysAndIndexers();
        }

        static void HumanTask()
        {
            //1) Создать класс Human.В классе определить поля -Имя, Фамилия, Дата рождения. 
            //Имя и фамилия не могут быть null.Дата рождения не может быть из будущего. 
            //Реализовать свойства для установки и считывания значений полей. 
            //Создать конструктор позволяющий установить значения полей класса при создании.
            //Создать 2 экземпляра класса. Вывести значение полей экземпляров на экран.

            List<Human> humans = new List<Human>();

            for (int i = 0; i < 2; i++)
            {
                InitialFormFilling.FillingHumanInfo();
                if (String.IsNullOrEmpty(InitialFormFilling.firstName) || String.IsNullOrEmpty(InitialFormFilling.lastName) || InitialFormFilling.birthday > DateTime.Now)
                {
                    Console.WriteLine("Incorrect entered name or date of birth.");
                }
                else
                {
                    Human oneHuman = new Human(InitialFormFilling.firstName, InitialFormFilling.lastName, InitialFormFilling.birthday);
                    humans.Add(oneHuman);
                }
            }

            foreach (var element in humans)
            {
                if (!String.IsNullOrEmpty(element.FirstName) && !String.IsNullOrEmpty(element.LastName) && element.DateOfBirtrh < DateTime.Now)
                {
                    element.PrintHumanInfo();

                }
            }
        }

        static void TextAndFile()
        {
            //2) Реализовать класс TextInput.В классе должно быть 2 метода.WriteToFile - позволяет сохранить строку введенную пользователем из консоли в файл. 
            //WordCalculator - считывает текст из файла и выводит на экран количество слов в файле.
            //Путь к файлу храниться в закрытом поле класса.

            TextInput text = new TextInput();
            Console.WriteLine("Enter any text.");
            text.WriteToFile(Console.ReadLine());
            text.WordCalculator();
        }

        static void ArraysAndIndexers()
        {
            //3) Составить класс для определения одномерных массивов целых чисел (векторов).
            //Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы массива, 
            //возможность задания произвольных границ индексов при создании объекта, 
            //и выполнения операций поэлементного сложения и вычитания массивов одинаковой длинны.

            
            InitialFormFilling.FillingArrayInfo();
            Arrays exempler = new Arrays(InitialFormFilling.firstIndex, InitialFormFilling.size);


            Console.WriteLine("Choose element you want to change.");
            int element = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Enter the number you want to set for the element.");
            exempler[element] = Int32.Parse(Console.ReadLine());
            Console.WriteLine("****");
            Console.WriteLine();
            exempler.ToPrintArray();

            Console.WriteLine();

            //InitialFormFilling.FillingArrayInfo();
            //Arrays exempler2 = new Arrays(InitialFormFilling.firstIndex, InitialFormFilling.size);

            //Console.WriteLine();
            //int[] summArray = Arrays.SumFromArrays(exempler.Array, exempler2.Array);
            //int[] minusArray = Arrays.MinusFromArrays(exempler.Array, exempler2.Array);

            //if (minusArray == null || summArray == null)
            //{
            //    Console.WriteLine("Arrays are not the same length.");
            //}
            //else
            //{
            //    Console.WriteLine("Result of the summing:");
            //    foreach (var item in summArray)
            //    {
            //        Console.WriteLine(item);
            //    }
            //    Console.WriteLine();
            //    Console.WriteLine("Result of the subtraction:");
            //    foreach (var item in minusArray)
            //    {
            //        Console.WriteLine(item);
            //    }
            //}

        }

    }
}
